更好的 DevSecOps,更安全的应用
编译:代码卫士
数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。
随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。
为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。
注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。
实际上,43%的数据泄露事件是因为不良的web应用安全 (AppSec) 造成的,这个比例比其它原因要高得多。当前,组织机构由于担心影响自身声誉而对报告攻击活动犹豫不决,导致我们很难判断网络事件的发生速度,同时使行业的透明度和问责的问题更为严重。
底层问题在于,软件市场包括软件供应链在内,并不鼓励安全性。区别安全软件和不安全软件极其困难,因此厂商和用户无法做出合理的风险决策。厂商创造安全代码不会得到市场的褒奖,用户必须盲目地信任对于生活和业务而言最重要的软件。
企业能够打破这一周期并更好地保护整个软件开发生命周期中应用程序的安全,从而免于成为数据泄露的受害者。应用安全计划应当确保(1)定制化代码具有恰当的防御措施且不含漏洞;(2)开源库是安全的;以及(3)生产环境中部署了合适的攻击检测、可见性和利用防止工具。组织机构利用DevSecOps 技术来掌控这三个方面非常重要。
随着应用变得愈加复杂和分散,传统应用安全工具和流程的效果落后于多个关键领域,包括消除软件开发中的漏洞以及保护生产环境中的应用。这就导致应用代码中发布漏洞而未经检测,以及安全测试结果中出现很多误报。实际上,这正是很多组织机构在响应2021年12月Log4j 漏洞时发生的情况。团队追逐着自己的应用和API实际上并未使用的库的修复方案,浪费了本可修复活跃代码中漏洞的时间。
美国总统拜登发布《改进国家网络安全》的行政令,要求美国国家标准与技术研究院 (NIST) 创立应用安全测试的最小标准。该新标准鼓励将安全测试直接嵌入代码中,优化可见性、对应用系统开展持续监控并获得更快的运行时间。
组织机构不应该依赖于传统的静态和动态测试工具来发现漏洞,而应当通过交互式应用安全测试 (IAST) 工具自动化检测并识别安全缺陷和漏洞。准确和实时的应用安全测试是必须的:从传统的web应用、API、serverless functions等等不一而足。
开发者世界中的另外一个趋势是使用的开源软件越来越多,代码设计为可公开访问使用和修改。这种去中心化的协作编程方式,组织机构发现这种方式成本更低,并且提供了更多的创新灵活性和机会,可对代码库拥有完整的可见性。
然而,开源软件在整个软件供应链中不断增多的数量和用途是有代价的。使用开源软件的应用程序是网络犯罪分子的主要目标,因为一旦发现漏洞,攻击者实际上就可以攻击使用该易受攻击开源软件的任意应用程序。
安全团队一般通过软件成分分析 (SCA) 工具了解哪部分的代码最易受攻击。虽然SCA旨在扫描开源软件代码库中的漏洞,但开发者和安全团队应当谨慎使用遗留SCA。通常,遗留SCA 只会在仓库层面进行扫描,也就是说安全团队可能只是查看用于测试的、平台部分的或应用服务器部分的依赖关系。它们无法了解这些库是否被该应用程序或API所调用,从而可能导致警报太多、繁杂的安全测试速度缓慢以及0day 利用没有对应的事件响应计划。运行时SCA工具可通过标记出应用调用的库识别出最迫切的安全风险,并且聚合这些漏洞来建立对网络威胁的集中概览。
虽然开源软件能够满足业务的速度需求,但组织机构必须确保其安全和漏洞管理工具能够解决随之而来的安全风险。
作为社区,我们需要继续在整个软件开发(生命周期开发和运营)流程中构建透明度。
美国政府已经采取措施,通过行政令和NIST标准的执行使应用安全走上正确道路:二者要求创建软件物料清单 (SBOM) 和进行最小化应用安全测试,以及药企创建保证案例和软件安全标签,将透明度推向软件市场。很多其它组织机构也都支持这些措施,包括OWASP和美国国防信息系统局 (DISA)。
下一步是确保安全团队对以下方面具有可见性:谁在攻击应用程序和API、他们在使用什么样的攻击向量以及他们的目标攻击系统是什么。遗憾的是,应用层的网络攻击对于外围防御措施如传统的防火墙和入侵检测系统而言基本是不可见的。现代应用通信对于网络设备而言太过复杂而无法了解,因此未受到重视,从而造成运营混乱情况。为了检测这些攻击,网络安全团队需要了解代码攻击数据的方法而非在网络出现的样子。代码如何使用数据的方式才起作用。
最后,虽然应用程序漏洞是不可避免的,但是在发现它们后立即进行修复并不总是可能的或者具有实践性。在漏洞打补丁之前就检测并防御网络攻击有助于安全团队集中攻克其它关键任务,而不是每次在漏洞发现后就进行修复。
传统的应用安全模式不再可以应付一切,组织机构必须执行正确的工具实现成功的 DevSecOps并对抗无法避免的代码漏洞。现代的应用安全计划必须具有适当的解决方案平台,赋能开发和安全团队,在整个软件产品和软件生命周期中协同协作。
热门PyPI 包 “ctx” 和 PHP库 “phpass” 长时间未更新遭劫持,用于窃取AWS密钥
趁机买走热门包唯一维护人员的邮件域名,我差点发动npm 软件供应链攻击
和GitHub 打官司?热门包 SheetJS出走npmjs.com转向自有CDN
不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环
NPM流行包再起波澜:维护人员对俄罗斯用户发特定消息,谁来保证开源可信?
200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击
NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击
热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道
速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年
Pwn2Own大赛回顾:利用开源服务中的严重漏洞,攻陷西部数据My Cloud PR4100
热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分
https://www.securitymagazine.com/articles/97729-modernizing-application-security-to-retool-devsecops
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。